りおんクロニクル


.NET MAUIのプロジェクト構造を徹底解説|各フォルダとファイルの役割を実務目線でわかりやすく説明【2026年最新版】

Home【2026年版】C# / .NET入門と実践ガイド|基礎・業務アプリ開発・SQLite連携まで体系的に解説

.NET MAUI は「1つのコードで Windows / macOS / iOS / Android を開発できる」フレームワークですが、 その分、プロジェクト構造が少し複雑に見えることがあります。

この記事では、MAUI プロジェクトを構成するフォルダ・ファイルの役割を実務目線でわかりやすく解説します。 MAUI を理解するうえで、この構造を押さえることは非常に重要です。


.NET MAUI プロジェクトの全体構造

MAUI プロジェクトを作成すると、次のような構造になります。


MyMauiApp/
 ├─ App.xaml
 ├─ App.xaml.cs
 ├─ MainPage.xaml
 ├─ MainPage.xaml.cs
 ├─ MauiProgram.cs
 ├─ Platforms/
 │   ├─ Android/
 │   ├─ iOS/
 │   ├─ MacCatalyst/
 │   └─ Windows/
 ├─ Resources/
 │   ├─ Fonts/
 │   ├─ Images/
 │   ├─ Raw/
 │   └─ Styles/
 ├─ wwwroot/(Blazor Hybrid の場合)
 └─ MyMauiApp.csproj

ここから、各フォルダ・ファイルの役割を詳しく見ていきます。


1. App.xaml / App.xaml.cs(アプリ全体の設定)

MAUI アプリのエントリーポイント(UI側)です。 アプリ全体のリソース(色・スタイル・テーマ)を定義します。

// App.xaml.cs の例
public App()
{
    InitializeComponent();
    MainPage = new MainPage();
}

WPF の App.xaml に近い役割です。


2. MainPage.xaml / MainPage.xaml.cs(最初に表示される画面)

アプリ起動時に最初に表示されるページです。 UI は XAML、ロジックは C# で記述します。

// MainPage.xaml の例

    

MAUI の UI は WPF に近い構造で、MVVM と相性が良いのが特徴です。


3. MauiProgram.cs(DI・サービス登録・アプリ設定)

MAUI アプリの起動設定・DI(依存性注入)・サービス登録を行うファイルです。 ASP.NET Core の Program.cs に近い役割を持ちます。

// MauiProgram.cs の例
public static MauiApp CreateMauiApp()
{
    var builder = MauiApp.CreateBuilder();
    builder
        .UseMauiApp()
        .ConfigureFonts(fonts =>
        {
            fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
        });

    builder.Services.AddSingleton<MainPage>();

    return builder.Build();
}

MAUI のアプリ構成はここで決まります。


4. Platforms フォルダ(OSごとの処理)

MAUI の特徴である「クロスプラットフォーム」を支えるフォルダです。 OSごとに必要な設定やネイティブコードをここに配置します。

通常の UI やロジックは共通化できますが、 OS固有の機能(通知・センサー・権限など)はここで実装します。


5. Resources フォルダ(画像・フォント・スタイルなど)

MAUI のリソースはすべて Resources にまとめられます。 MAUI はビルド時にリソースを自動処理してくれるため、非常に扱いやすい構造です。

Resources/Images

画像ファイル(png / jpg / svg)を置く場所。

Resources/Fonts

カスタムフォントを置く場所。

Resources/Styles

アプリ全体のスタイル(色・テーマ)を定義。

Resources/Raw

設定ファイルやJSONなど、加工せずに使いたいファイルを置く。


6. wwwroot(Blazor Hybrid の場合)

MAUI で Blazor を使う場合に生成されるフォルダです。 Webアプリの静的ファイル(HTML / CSS / JS)を配置します。

「ネイティブアプリ × Web UI」というハイブリッド構成が可能になります。


7. .csproj(プロジェクト設定)

MAUI のプロジェクト設定を記述するファイルです。 ターゲットOS、使用するSDK、リソース設定などが含まれます。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net8.0-android;net8.0-ios;net8.0-windows10.0.19041.0</TargetFrameworks>
    <UseMaui>true</UseMaui>
  </PropertyGroup>
</Project>

MAUI のビルド対象OSはここで指定します。


まとめ:MAUIのプロジェクト構造は「共通UI+OS固有」のハイブリッド

MAUI のプロジェクト構造は一見複雑に見えますが、 「共通コード」と「OS固有コード」が明確に分かれているため、慣れると非常に扱いやすい構造です。

この構造を理解することで、MAUI 開発のスピードと品質が大きく向上します。

前のページ  次のページ